/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Negocio;

import java.sql.Connection;
import Persistencia.Daos;
import Entidades.EntIngresoVehiculo;
import Utilidades.Conexion;
import java.util.Date;

/**
 *
 * @author santiago
 */
public class IngresoVehiculoN {

    Daos dao;
    
    /**
     * Metodo constructor en el cual se crea un objeto de tipo DAOS
     */
    public IngresoVehiculoN() {
        dao = new Daos();
    }

    /**
     * Metodo que sirve para validar los campos antes de guardar el ingreso de un vehiculo en la base de datos
     * @param vehiculo objeto que contiene toda la informacion de un vehiculo, de tipo EntVehiculo
     * @throws Exception mensajeError
     */
    public void guardar(EntIngresoVehiculo vehiculo) throws Exception {
        Connection c;
        c = new Conexion().getCon();
        String mensajeError = "";
        int numeroIngreso = vehiculo.getNumeroIngreso();
        Date fechaIngreso = vehiculo.getFechaIngreso();
        String documentoCliente = vehiculo.getDocumentoCliente();
        String empleadoRecibe = vehiculo.getEmpleadoRecibe();
        String placa = vehiculo.getPlaca();
        String marca = vehiculo.getMarca();
        String serie = vehiculo.getSerie();
        String anho = vehiculo.getAnho();
        String kilometraje = vehiculo.getKilometraje();
        String descripcionNecesidad = vehiculo.getDescripcionNecesidad();
        String estado = vehiculo.getEstado();

        if (String.valueOf(numeroIngreso).equals("")) {
            mensajeError = mensajeError + "Debes ingresar el numero de ingreso del vehiculo";
        }
        if (fechaIngreso == null || "".equals(fechaIngreso)) {
            mensajeError = mensajeError + "Debes ingresar la fecha del ingreso del vehiculo";
        }
        if (documentoCliente == null || "".equals(documentoCliente)) {
            mensajeError = mensajeError + "Debes ingresar el codigo de la habitacion";
        }
        if (empleadoRecibe == null || "".equals(empleadoRecibe)) {
            mensajeError = mensajeError + "Debes ingresar el codigo de la habitacion";
        }
        if (placa == null || "".equals(placa)) {
            mensajeError = mensajeError + "Debes ingresar el codigo de la habitacion";
        }
        if (marca == null || "".equals(marca)) {
            mensajeError = mensajeError + "Debes ingresar el codigo de la habitacion";
        }
        if (serie == null || "".equals(serie)) {
            mensajeError = mensajeError + "Debes ingresar el codigo de la habitacion";
        }
        if (anho == null || "".equals(anho)) {
            mensajeError = mensajeError + "Debes ingresar el codigo de la habitacion";
        }
        if (kilometraje == null || "".equals(kilometraje)) {
            mensajeError = mensajeError + "Debes ingresar el codigo de la habitacion";
        }
        if (descripcionNecesidad == null || "".equals(descripcionNecesidad)) {
            mensajeError = mensajeError + "Debes ingresar el codigo de la habitacion";
        }
        if (estado == null || "".equals(estado)) {
            mensajeError = mensajeError + "Debes ingresar el codigo de la habitacion";
        }
        if (!"".equals(mensajeError)) {
            throw new Exception(mensajeError);
        }
        dao.insertarVehiculo(c, numeroIngreso, fechaIngreso, documentoCliente, empleadoRecibe, placa, marca, serie, anho, kilometraje, descripcionNecesidad,estado);

    }

    /**
     * Metodo que sirve para validar los campos antes de actualizar la el ingreso de un vehiculo en la base de datos
     * @param vehiculo objeto que contiene toda la informacion de un vehiculo, de tipo EntVehiculo
     * @throws Exception mensajeError
     */
    public void actualizar(EntIngresoVehiculo vehiculo) throws Exception {
        Connection c;
        c = new Conexion().getCon();
        String mensajeError = "";
        int numeroIngreso = vehiculo.getNumeroIngreso();
        Date fechaIngreso = vehiculo.getFechaIngreso();
        String documentoCliente = vehiculo.getDocumentoCliente();
        String empleadoRecibe = vehiculo.getEmpleadoRecibe();
        String placa = vehiculo.getPlaca();
        String marca = vehiculo.getMarca();
        String serie = vehiculo.getSerie();
        String anho = vehiculo.getAnho();
        String kilometraje = vehiculo.getKilometraje();
        String descripcionNecesidad = vehiculo.getDescripcionNecesidad();
        String estado = vehiculo.getEstado();

        if (String.valueOf(numeroIngreso).equals("")) {
            mensajeError = mensajeError + "Debes ingresar el numero de ingreso del vehiculo";
        }
        if (fechaIngreso == null || "".equals(fechaIngreso)) {
            mensajeError = mensajeError + "Debes ingresar la fecha del ingreso del vehiculo";
        }
        if (documentoCliente == null || "".equals(documentoCliente)) {
            mensajeError = mensajeError + "Debes ingresar el codigo de la habitacion";
        }
        if (empleadoRecibe == null || "".equals(empleadoRecibe)) {
            mensajeError = mensajeError + "Debes ingresar el codigo de la habitacion";
        }
        if (placa == null || "".equals(placa)) {
            mensajeError = mensajeError + "Debes ingresar el codigo de la habitacion";
        }
        if (marca == null || "".equals(marca)) {
            mensajeError = mensajeError + "Debes ingresar el codigo de la habitacion";
        }
        if (serie == null || "".equals(serie)) {
            mensajeError = mensajeError + "Debes ingresar el codigo de la habitacion";
        }
        if (anho == null || "".equals(anho)) {
            mensajeError = mensajeError + "Debes ingresar el codigo de la habitacion";
        }
        if (kilometraje == null || "".equals(kilometraje)) {
            mensajeError = mensajeError + "Debes ingresar el codigo de la habitacion";
        }
        if (descripcionNecesidad == null || "".equals(descripcionNecesidad)) {
            mensajeError = mensajeError + "Debes ingresar el codigo de la habitacion";
        }
        if (estado == null || "".equals(estado)) {
            mensajeError = mensajeError + "Debes ingresar el codigo de la habitacion";
        }
        if (!"".equals(mensajeError)) {
            throw new Exception(mensajeError);
        }
        dao.actualizarVehiculo(c, numeroIngreso, fechaIngreso, documentoCliente, empleadoRecibe, placa, marca, serie, anho, kilometraje, descripcionNecesidad,estado);
    }

    /**
     * Metodo que sirve como puente entre el Servlet y DAOS para buscar el ingreso de un vehiculo
     * @param numeroIngreso Numero de ingrseo del vehiculo
     * @param placa Placa del vehiculo
     * @return  ingreso
     */
    public EntIngresoVehiculo buscar(int numeroIngreso, String placa) {
        Connection con;
        con = new Conexion().getCon();
        EntIngresoVehiculo ingreso = dao.consultarVehiculo(con, numeroIngreso,placa);
        return ingreso;
    }
    
    /**
     * Metodo que sirve como puente entre el Servlet y DAOS para eliminar el ingreso de un vehiculo de la base de datos
     * @param numeroIngreso Numero de ingreso del vehiculo
     * @return true |false
     */
    public boolean borrar(int numeroIngreso) {
        Connection c;
        c = new Conexion().getCon();
        return dao.borrarVehiculo(c, numeroIngreso);
    }
}
